<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/compiler-gcc.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/compiler-gcc.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="False">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X19MSU5VWF9DT01QSUxFUl9IXzA_"><span class="b">__LINUX_COMPILER_H</span></a>
<a name="2" /><span class="False">       2:</span> <span class="f">#</span><span class="n">error</span> <span class="e">&quot;Please don&apos;t include &lt;linux/compiler-gcc.h&gt; directly, include &lt;linux/compiler.h&gt; instead.&quot;</span>
<a name="3" /><span class="True">       3:</span> <span class="f">#</span><span class="n">endif</span>
<a name="4" /><span class="True">       4:</span> 
<a name="5" /><span class="True">       5:</span> <span class="k">/*</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> * Common definitions for all gcc versions go here.</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> */</span>
<a name="8" /><span class="True">       8:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_R0NDX1ZFUlNJT05fMA__"><span class="b">GCC_VERSION</span></a> <span class="f">(</span><a href="cpu.c_macros_ref.html#_X19HTlVDX19fMA__"><span class="b">__GNUC__</span></a> <span class="f">*</span> <span class="c">10000</span> \
<a name="9" /><span class="True">       9:</span>            <span class="f">+</span> <span class="b">__GNUC_MINOR__</span> <span class="f">*</span> <span class="c">100</span> \
<a name="10" /><span class="True">      10:</span>            <span class="f">+</span> <span class="b">__GNUC_PATCHLEVEL__</span><span class="f">)</span>
<a name="11" /><span class="True">      11:</span> 
<a name="12" /><span class="True">      12:</span> 
<a name="13" /><span class="True">      13:</span> <span class="k">/* Optimization barrier */</span>
<a name="14" /><span class="True">      14:</span> <span class="k">/* The &quot;volatile&quot; is due to gcc bugs */</span>
<a name="15" /><span class="True">      15:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_YmFycmllcl8w"><span class="b">barrier</span></a><span class="f">(</span><span class="f">)</span> <span class="b">__asm__</span> <span class="b">__volatile__</span><span class="f">(</span><span class="e">&quot;&quot;</span><span class="f">:</span> <span class="f">:</span> <span class="f">:</span><span class="e">&quot;memory&quot;</span><span class="f">)</span>
<a name="16" /><span class="True">      16:</span> 
<a name="17" /><span class="True">      17:</span> <span class="k">/*</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> * This macro obfuscates arithmetic on a variable address so that gcc</span>
<a name="19" /><span class="True">      19:</span> <span class="k"> * shouldn&apos;t recognize the original var, and make assumptions about it.</span>
<a name="20" /><span class="True">      20:</span> <span class="k"> *</span>
<a name="21" /><span class="True">      21:</span> <span class="k"> * This is needed because the C standard makes it undefined to do</span>
<a name="22" /><span class="True">      22:</span> <span class="k"> * pointer arithmetic on &quot;objects&quot; outside their boundaries and the</span>
<a name="23" /><span class="True">      23:</span> <span class="k"> * gcc optimizers assume this is the case. In particular they</span>
<a name="24" /><span class="True">      24:</span> <span class="k"> * assume such arithmetic does not wrap.</span>
<a name="25" /><span class="True">      25:</span> <span class="k"> *</span>
<a name="26" /><span class="True">      26:</span> <span class="k"> * A miscompilation has been observed because of this on PPC.</span>
<a name="27" /><span class="True">      27:</span> <span class="k"> * To work around it we hide the relationship of the pointer and the object</span>
<a name="28" /><span class="True">      28:</span> <span class="k"> * using this macro.</span>
<a name="29" /><span class="True">      29:</span> <span class="k"> *</span>
<a name="30" /><span class="True">      30:</span> <span class="k"> * Versions of the ppc64 compiler before 4.1 had a bug where use of</span>
<a name="31" /><span class="True">      31:</span> <span class="k"> * RELOC_HIDE could trash r30. The bug can be worked around by changing</span>
<a name="32" /><span class="True">      32:</span> <span class="k"> * the inline assembly constraint from =g to =r, in this particular</span>
<a name="33" /><span class="True">      33:</span> <span class="k"> * case either is valid.</span>
<a name="34" /><span class="True">      34:</span> <span class="k"> */</span>
<a name="35" /><span class="True">      35:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UkVMT0NfSElERV8w"><span class="b">RELOC_HIDE</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">,</span> <span class="b">off</span><span class="f">)</span>                    \
<a name="36" /><span class="True">      36:</span>   <span class="f">(</span><span class="f">{</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">__ptr</span><span class="f">;</span>                    \
<a name="37" /><span class="True">      37:</span>     <span class="b">__asm__</span> <span class="f">(</span><span class="e">&quot;&quot;</span> <span class="f">:</span> <span class="e">&quot;=r&quot;</span><span class="f">(</span><span class="b">__ptr</span><span class="f">)</span> <span class="f">:</span> <span class="e">&quot;0&quot;</span><span class="f">(</span><span class="b">ptr</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>        \
<a name="38" /><span class="True">      38:</span>     <span class="f">(</span><span class="b">typeof</span><span class="f">(</span><span class="b">ptr</span><span class="f">)</span><span class="f">)</span> <span class="f">(</span><span class="b">__ptr</span> <span class="f">+</span> <span class="f">(</span><span class="b">off</span><span class="f">)</span><span class="f">)</span><span class="f">;</span> <span class="f">}</span><span class="f">)</span>
<a name="39" /><span class="True">      39:</span> 
<a name="40" /><span class="False">      40:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__CHECKER__</span>
<a name="41" /><span class="False">      41:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19tdXN0X2JlX2FycmF5XzA_"><span class="b">__must_be_array</span></a><span class="f">(</span><span class="b">arr</span><span class="f">)</span> <span class="c">0</span>
<a name="42" /><span class="True">      42:</span> <span class="f">#</span><span class="n">else</span>
<a name="43" /><span class="True">      43:</span> <span class="k">/* &amp;a[0] degrades to a pointer: a different type from an array */</span>
<a name="44" /><span class="True">      44:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19tdXN0X2JlX2FycmF5XzA_"><span class="b">__must_be_array</span></a><span class="f">(</span><span class="b">a</span><span class="f">)</span> <a href="cpu.c_macros_noref.html#_QlVJTERfQlVHX09OX1pFUk9fMA__"><span class="b">BUILD_BUG_ON_ZERO</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_X19zYW1lX3R5cGVfMA__"><span class="b">__same_type</span></a><span class="f">(</span><span class="f">(</span><span class="b">a</span><span class="f">)</span><span class="f">,</span> <span class="f">&amp;</span><span class="f">(</span><span class="b">a</span><span class="f">)</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">)</span><span class="f">)</span>
<a name="45" /><span class="True">      45:</span> <span class="f">#</span><span class="n">endif</span>
<a name="46" /><span class="True">      46:</span> 
<a name="47" /><span class="True">      47:</span> <span class="k">/*</span>
<a name="48" /><span class="True">      48:</span> <span class="k"> * Force always-inline if the user requests it so via the .config,</span>
<a name="49" /><span class="True">      49:</span> <span class="k"> * or if gcc is too old:</span>
<a name="50" /><span class="True">      50:</span> <span class="k"> */</span>
<a name="51" /><span class="False">      51:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><a href="cpu.c_macros_ref.html#_Q09ORklHX0FSQ0hfU1VQUE9SVFNfT1BUSU1JWkVEX0lOTElOSU5HXzA_"><span class="b">CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING</span></a><span class="f">)</span> <span class="f">||</span> \
<a name="52" /><span class="False">      52:</span>     <span class="f">!</span><span class="b">defined</span><span class="f">(</span><a href="cpu.c_macros_ref.html#_Q09ORklHX09QVElNSVpFX0lOTElOSU5HXzA_"><span class="b">CONFIG_OPTIMIZE_INLINING</span></a><span class="f">)</span> <span class="f">||</span> <span class="f">(</span><a href="cpu.c_macros_ref.html#_X19HTlVDX19fMA__"><span class="b">__GNUC__</span></a> <span class="f">&lt;</span> <span class="c">4</span><span class="f">)</span>
<a name="53" /><span class="False">      53:</span> <span class="f">#</span> <span class="n">define</span> <span class="m">inline</span>        <span class="m">inline</span>        <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">always_inline</span><span class="f">)</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="54" /><span class="False">      54:</span> <span class="f">#</span> <span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19pbmxpbmVfX18w"><span class="b">__inline__</span></a>    <a href="cpu.c_macros_ref.html#_X19pbmxpbmVfX18w"><span class="b">__inline__</span></a>    <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">always_inline</span><span class="f">)</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="55" /><span class="False">      55:</span> <span class="f">#</span> <span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19pbmxpbmVfMA__"><span class="b">__inline</span></a>    <a href="cpu.c_macros_ref.html#_X19pbmxpbmVfMA__"><span class="b">__inline</span></a>    <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">always_inline</span><span class="f">)</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="56" /><span class="True">      56:</span> <span class="f">#</span><span class="n">else</span>
<a name="57" /><span class="True">      57:</span> <span class="k">/* A lot of inline functions can cause havoc with function tracing */</span>
<a name="58" /><span class="True">      58:</span> <span class="f">#</span> <span class="n">define</span> <span class="m">inline</span>        <span class="m">inline</span>        <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="59" /><span class="True">      59:</span> <span class="f">#</span> <span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19pbmxpbmVfX18w"><span class="b">__inline__</span></a>    <a href="cpu.c_macros_ref.html#_X19pbmxpbmVfX18w"><span class="b">__inline__</span></a>    <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="60" /><span class="True">      60:</span> <span class="f">#</span> <span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19pbmxpbmVfMA__"><span class="b">__inline</span></a>    <a href="cpu.c_macros_ref.html#_X19pbmxpbmVfMA__"><span class="b">__inline</span></a>    <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="61" /><span class="True">      61:</span> <span class="f">#</span><span class="n">endif</span>
<a name="62" /><span class="True">      62:</span> 
<a name="63" /><span class="True">      63:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19kZXByZWNhdGVkXzE_"><span class="b">__deprecated</span></a>            <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">deprecated</span><span class="f">)</span><span class="f">)</span>
<a name="64" /><span class="True">      64:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19wYWNrZWRfMA__"><span class="b">__packed</span></a>            <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">packed</span><span class="f">)</span><span class="f">)</span>
<a name="65" /><span class="True">      65:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X193ZWFrXzA_"><span class="b">__weak</span></a>                <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">weak</span><span class="f">)</span><span class="f">)</span>
<a name="66" /><span class="True">      66:</span> 
<a name="67" /><span class="True">      67:</span> <span class="k">/*</span>
<a name="68" /><span class="True">      68:</span> <span class="k"> * it doesn&apos;t make sense on ARM (currently the only user of __naked) to trace</span>
<a name="69" /><span class="True">      69:</span> <span class="k"> * naked functions because then mcount is called without stack and frame pointer</span>
<a name="70" /><span class="True">      70:</span> <span class="k"> * being set up and there is no chance to restore the lr register to the value</span>
<a name="71" /><span class="True">      71:</span> <span class="k"> * before mcount was called.</span>
<a name="72" /><span class="True">      72:</span> <span class="k"> *</span>
<a name="73" /><span class="True">      73:</span> <span class="k"> * The asm() bodies of naked functions often depend on standard calling conventions,</span>
<a name="74" /><span class="True">      74:</span> <span class="k"> * therefore they must be noinline and noclone.  GCC 4.[56] currently fail to enforce</span>
<a name="75" /><span class="True">      75:</span> <span class="k"> * this, so we must do so ourselves.  See GCC PR44290.</span>
<a name="76" /><span class="True">      76:</span> <span class="k"> */</span>
<a name="77" /><span class="True">      77:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19uYWtlZF8w"><span class="b">__naked</span></a>                <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">naked</span><span class="f">)</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_bm9pbmxpbmVfMA__"><span class="b">noinline</span></a> <a href="cpu.c_macros_noref.html#_X19ub2Nsb25lXzA_"><span class="b">__noclone</span></a> <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="78" /><span class="True">      78:</span> 
<a name="79" /><span class="True">      79:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19ub3JldHVybl8w"><span class="b">__noreturn</span></a>            <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">noreturn</span><span class="f">)</span><span class="f">)</span>
<a name="80" /><span class="True">      80:</span> 
<a name="81" /><span class="True">      81:</span> <span class="k">/*</span>
<a name="82" /><span class="True">      82:</span> <span class="k"> * From the GCC manual:</span>
<a name="83" /><span class="True">      83:</span> <span class="k"> *</span>
<a name="84" /><span class="True">      84:</span> <span class="k"> * Many functions have no effects except the return value and their</span>
<a name="85" /><span class="True">      85:</span> <span class="k"> * return value depends only on the parameters and/or global</span>
<a name="86" /><span class="True">      86:</span> <span class="k"> * variables.  Such a function can be subject to common subexpression</span>
<a name="87" /><span class="True">      87:</span> <span class="k"> * elimination and loop optimization just as an arithmetic operator</span>
<a name="88" /><span class="True">      88:</span> <span class="k"> * would be.</span>
<a name="89" /><span class="True">      89:</span> <span class="k"> * [...]</span>
<a name="90" /><span class="True">      90:</span> <span class="k"> */</span>
<a name="91" /><span class="True">      91:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19wdXJlXzA_"><span class="b">__pure</span></a>                <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">pure</span><span class="f">)</span><span class="f">)</span>
<a name="92" /><span class="True">      92:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19hbGlnbmVkXzA_"><span class="b">__aligned</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>            <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">aligned</span><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="93" /><span class="True">      93:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19wcmludGZfMA__"><span class="b">__printf</span></a><span class="f">(</span><span class="b">a</span><span class="f">,</span> <span class="b">b</span><span class="f">)</span>            <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">format</span><span class="f">(</span><span class="b">printf</span><span class="f">,</span> <span class="b">a</span><span class="f">,</span> <span class="b">b</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="94" /><span class="True">      94:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19zY2FuZl8w"><span class="b">__scanf</span></a><span class="f">(</span><span class="b">a</span><span class="f">,</span> <span class="b">b</span><span class="f">)</span>            <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">format</span><span class="f">(</span><span class="b">scanf</span><span class="f">,</span> <span class="b">a</span><span class="f">,</span> <span class="b">b</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="95" /><span class="True">      95:</span> <span class="f">#</span><span class="n">define</span>  <a href="cpu.c_macros_ref.html#_bm9pbmxpbmVfMA__"><span class="b">noinline</span></a>            <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><a href="cpu.c_macros_ref.html#_bm9pbmxpbmVfMA__"><span class="b">noinline</span></a><span class="f">)</span><span class="f">)</span>
<a name="96" /><span class="True">      96:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19hdHRyaWJ1dGVfY29uc3RfX18w"><span class="b">__attribute_const__</span></a>        <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">__const__</span><span class="f">)</span><span class="f">)</span>
<a name="97" /><span class="True">      97:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19tYXliZV91bnVzZWRfMA__"><span class="b">__maybe_unused</span></a>            <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">unused</span><span class="f">)</span><span class="f">)</span>
<a name="98" /><span class="True">      98:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19hbHdheXNfdW51c2VkXzA_"><span class="b">__always_unused</span></a>            <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">unused</span><span class="f">)</span><span class="f">)</span>
<a name="99" /><span class="True">      99:</span> 
<a name="100" /><span class="True">     100:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19nY2NfaGVhZGVyXzA_"><span class="b">__gcc_header</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">#</span><span class="b">x</span>
<a name="101" /><span class="True">     101:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X2djY19oZWFkZXJfMA__"><span class="b">_gcc_header</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19nY2NfaGVhZGVyXzA_"><span class="b">__gcc_header</span></a><span class="f">(</span><span class="b">linux</span><span class="f">/</span><span class="b">compiler</span><span class="f">-</span><span class="b">gcc</span><span class="f">##</span><span class="b">x</span><span class="f">.</span><span class="b">h</span><span class="f">)</span>
<a name="102" /><span class="True">     102:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Z2NjX2hlYWRlcl8w"><span class="b">gcc_header</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X2djY19oZWFkZXJfMA__"><span class="b">_gcc_header</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="103" /><span class="True">     103:</span> <span class="f">#</span><span class="n">include</span> <a href="cpu.c_macros_ref.html#_Z2NjX2hlYWRlcl8w"><span class="b">gcc_header</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_X19HTlVDX19fMA__"><span class="b">__GNUC__</span></a><span class="f">)</span>
<a name="104" /><span class="True">     104:</span> 
<a name="105" /><span class="True">     105:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><a href="cpu.c_macros_noref.html#_X19ub2Nsb25lXzA_"><span class="b">__noclone</span></a><span class="f">)</span>
<a name="106" /><span class="True">     106:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19ub2Nsb25lXzA_"><span class="b">__noclone</span></a>    <span class="k">/* not needed */</span>
<a name="107" /><span class="True">     107:</span> <span class="f">#</span><span class="n">endif</span>
<a name="108" /><span class="True">     108:</span> 
<a name="109" /><span class="True">     109:</span> <span class="k">/*</span>
<a name="110" /><span class="True">     110:</span> <span class="k"> * A trick to suppress uninitialized variable warning without generating any</span>
<a name="111" /><span class="True">     111:</span> <span class="k"> * code</span>
<a name="112" /><span class="True">     112:</span> <span class="k"> */</span>
<a name="113" /><span class="True">     113:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_dW5pbml0aWFsaXplZF92YXJfMA__"><span class="b">uninitialized_var</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="b">x</span> <span class="f">=</span> <span class="b">x</span>
<a name="114" /><span class="True">     114:</span> 
<a name="115" /><span class="True">     115:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19hbHdheXNfaW5saW5lXzA_"><span class="b">__always_inline</span></a>        <span class="m">inline</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">always_inline</span><span class="f">)</span><span class="f">)</span>
<a name="116" /><span class="True">     116:</span> </pre>
  </body>
</html>
